package com.px.project.module.ml.dto.requirements.plan;

import java.util.Date;
import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.Max;

import org.hibernate.validator.constraints.Length;
import com.px.common.dto.Dto;

import com.fasterxml.jackson.annotation.JsonFormat;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * 物资系统》物资管理》物资需求计划数据传输对象
 *
 * @author 品讯科技
 * @date 2024-08
 */
@Getter
@Setter
@Accessors(chain = true)
public class RequirementsPlanDraftDto extends Dto {
    private static final long serialVersionUID = -2269696161655501624L;
    /**
     * 计划名称
     */
    @Length(max = 255, message = "计划名称不能超过255个字")
    private String planName;
    /**
     * 分部ID
     */
    private Long branchId;
    /**
     * 分项ID
     */
    private Long branchItemId;
    /**
     * 计划日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date planDate;
    /**
     * 责任人
     */
    private Long principalId;
    /**
     * 起始里程千米
     */

    private Integer mileageStartKm;
    /**
     * 起始里程米
     */
    @Max(value = 999, message = "里程值（米）最大值999")
    private Integer mileageStartM;
    /**
     * 结束里程千米
     */
    private Integer mileageEndKm;
    /**
     * 结束里程米
     */
    @Max(value = 999, message = "里程值（米）最大值999")
    private Integer mileageEndM;
    /**
     * 文件ID，用于新增
     */
    private List<Long> fileIds;
    /**
     * 物资需求计划子表
     */
    @Valid
    private List<RequirementsPlanItemDraftDto> requirementsPlanItems;
}